package com.example.springboot.MongoDB.BaseOperation;

import com.example.springboot.MongoDB.Vo.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
public class InsertFun {
    @Autowired
    private MongoTemplate mongoTemplate;

    /**
     * 插入操作
     * insert表示插入
     * 如果重复插入就报错
     */
    public void m1() {
        Person person = Person.builder().name("张三").age(18).id(1L).build();
        mongoTemplate.insert(person);
    }

    /**
     * Sava表示如果有就修改 如果没有就插入
     */
    public void m2() {
        Person person = Person.builder().name("张三1").age(18).id(1L).build();
        mongoTemplate.save(person);
    }

    /**
     * 自定义集合
     * 插入文档
     * 相当于将person 这个集合复制到person111里
     */
    public void m3() {
        Person person = Person.builder().name("张三1").age(18).id(1L).build();
        mongoTemplate.insert(person, "person111");
    }

    /**
     * 批量插入
     */
    public void m4() {
        List<Person> persons =  new ArrayList<>();
        for (int i = 1; i <= 5; i++) {
            Person person = Person.builder().name("张三"+i).age(i).id(Long.valueOf(i)).build();
            persons.add(person);
        }
        mongoTemplate.insertAll(persons);
    }

}